Page({
  data: {
    settings: {
      followsPublic: true,
      collectionsPublic: true,
      viewsPublic: false,
      fansPublic: true,
      recommendFriends: true,
      recommendContent: true,
      messagePrivacy: 'all' // all, follows, mutualFollows, none
    },
    messagePrivacyText: '所有人'
  },
  
  onLoad: function() {
    // 尝试从本地存储获取设置
    this.getSettings();
  },
  
  // 加载设置
  getSettings: function() {
    try {
      const settings = wx.getStorageSync('settings');
      if (settings) {
        this.setData({ settings });
        this.updateMessagePrivacyText();
      } else {
        // 初始化设置并保存
        wx.setStorageSync('settings', this.data.settings);
      }
    } catch (e) {
      console.error('获取设置失败', e);
    }
  },
  
  // 保存设置
  saveSettings: function() {
    try {
      wx.setStorageSync('settings', this.data.settings);
    } catch (e) {
      console.error('保存设置失败', e);
      wx.showToast({
        title: '保存设置失败',
        icon: 'none'
      });
    }
  },
  
  // 更新消息隐私文本
  updateMessagePrivacyText: function() {
    let text = '所有人';
    
    switch(this.data.settings.messagePrivacy) {
      case 'follows':
        text = '关注我的人';
        break;
      case 'followed':
        text = '我关注的人';
        break;
      case 'mutualFollows':
        text = '互相关注的人';
        break;
      case 'none':
        text = '禁止陌生人';
        break;
    }
    
    this.setData({ messagePrivacyText: text });
  },
  
  // 返回上一页
  navigateBack: function() {
    wx.navigateBack();
  },
  
  // 导航到黑名单用户页面
  navigateToBlockList: function() {
    wx.navigateTo({
      url: '/pages/user-list/user-list?type=blacklist'
    });
  },
  
  // 导航到不喜欢的用户页面
  navigateToDislikeUsers: function() {
    wx.navigateTo({
      url: '/pages/user-list/user-list?type=dislike'
    });
  },
  
  // 导航到不喜欢的作品页面
  navigateToDislikeWorks: function() {
    wx.navigateTo({
      url: '/pages/work-list/work-list?type=dislike'
    });
  },
  
  // 导航到隐私设置页面
  navigateToPrivacy: function() {
    // 临时提示，页面尚未创建
    wx.showToast({
      title: '隐私设置功能开发中',
      icon: 'none'
    });
  },
  
  // 导航到消息隐私设置
  navigateToMessagePrivacy: function() {
    wx.showActionSheet({
      itemList: ['所有人', '关注我的人', '我关注的人', '互相关注的人', '禁止陌生人'],
      success: (res) => {
        if (!res.cancel) {
          // 设置消息隐私
          const privacyMap = ['all', 'follows', 'followed', 'mutualFollows', 'none'];
          const privacy = privacyMap[res.tapIndex];
          
          this.setData({
            'settings.messagePrivacy': privacy
          });
          
          this.updateMessagePrivacyText();
          this.saveSettings();
          
          wx.showToast({
            title: '设置已保存',
            icon: 'success'
          });
        }
      }
    });
  },
  
  // 导航到关注页面
  navigateToFollows: function() {
    wx.navigateTo({
      url: '/pages/user-list/user-list?type=follow'
    });
  },
  
  // 导航到收藏页面
  navigateToCollections: function() {
    wx.navigateTo({
      url: '/pages/work-list/work-list?type=collection'
    });
  },
  
  // 导航到围观页面
  navigateToViews: function() {
    wx.navigateTo({
      url: '/pages/work-list/work-list?type=view'
    });
  },
  
  // 导航到粉丝页面
  navigateToFans: function() {
    wx.navigateTo({
      url: '/pages/user-list/user-list?type=fan'
    });
  },
  
  // 导航到被喜欢页面
  navigateToLikes: function() {
    wx.navigateTo({
      url: '/pages/user-list/user-list?type=like'
    });
  },
  
  // 导航到好友页面
  navigateToFriends: function() {
    wx.navigateTo({
      url: '/pages/user-list/user-list?type=friend'
    });
  },
  
  // 切换关注公开状态
  toggleFollowsPublic: function(e) {
    this.setData({
      'settings.followsPublic': e.detail.value
    });
    this.saveSettings();
  },
  
  // 切换收藏公开状态
  toggleCollectionsPublic: function(e) {
    this.setData({
      'settings.collectionsPublic': e.detail.value
    });
    this.saveSettings();
  },
  
  // 切换围观公开状态
  toggleViewsPublic: function(e) {
    this.setData({
      'settings.viewsPublic': e.detail.value
    });
    this.saveSettings();
  },
  
  // 切换粉丝列表公开状态
  toggleFansPublic: function(e) {
    this.setData({
      'settings.fansPublic': e.detail.value
    });
    this.saveSettings();
  },
  
  // 切换推荐好友状态
  toggleRecommendFriends: function(e) {
    this.setData({
      'settings.recommendFriends': e.detail.value
    });
    this.saveSettings();
  },
  
  // 切换推荐内容状态
  toggleRecommendContent: function(e) {
    this.setData({
      'settings.recommendContent': e.detail.value
    });
    this.saveSettings();
  },
  
  // 清除缓存
  clearCache: function() {
    wx.showModal({
      title: '清除缓存',
      content: '确定要清除所有缓存吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除缓存（实际项目中应调用相关API）
          wx.showLoading({
            title: '正在清除...',
          });
          
          setTimeout(() => {
            wx.hideLoading();
            wx.showToast({
              title: '缓存已清除',
              icon: 'success'
            });
          }, 1500);
        }
      }
    });
  },
  
  // 关于我们
  about: function() {
    // 临时提示，页面尚未创建
    wx.showToast({
      title: '关于我们功能开发中',
      icon: 'none'
    });
  },
  
  // 退出登录
  logout: function() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 显示加载状态
          wx.showLoading({
            title: '正在退出...',
            mask: true
          });
          
          // 调用app中的logout方法，确保通过API正确退出
          const app = getApp();
          app.logout()
            .then(() => {
              wx.hideLoading();
              wx.showToast({
                title: '已退出登录',
                icon: 'success',
                duration: 2000
              });
              
              // 退出成功后跳转到首页或登录页
              setTimeout(() => {
                wx.reLaunch({
                  url: '/pages/index/index'
                });
              }, 1500);
            })
            .catch(error => {
              console.error('退出登录失败', error);
              wx.hideLoading();
              wx.showToast({
                title: '退出失败，请重试',
                icon: 'none',
                duration: 2000
              });
            });
        }
      }
    });
  }
}); 